// 是否是标点符号 true: 是  ： false: 不是
export function isSymbol(str: string) {
  return /^[^\w\d\u4e00-\u9fa5]*$/.test(str);
}

export function sleep(num: number) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(true);
    }, num);
  });
}

/**
 * 判断当前设备是否为手机（排除平板和桌面设备）
 * @returns {boolean} 是否为手机
 */
export function isMobilePhone() {
  // 1. User-Agent 检测：匹配常见手机关键词
  const ua = navigator.userAgent.toLowerCase();
  const isPhoneUA =
    /(iphone|android|phone|mobile|ipod|blackberry|iemobile|opera mini)/i.test(
      ua
    );

  // 2. 排除平板设备（平板UA可能包含手机关键词，需额外判断）
  const isTabletUA = /(ipad|tablet|playbook|silk|kindle)/i.test(ua);

  // 3. 屏幕尺寸辅助判断（手机屏幕通常较窄）
  const screenWidth = window.screen.width;
  const screenHeight = window.screen.height;
  const minDimension = Math.min(screenWidth, screenHeight); // 取宽高中的较小值
  const isSmallScreen = minDimension < 768; // 小于768px通常为手机

  // 综合判断：UA符合手机特征 + 不是平板 + 屏幕尺寸较小
  return isPhoneUA && !isTabletUA && isSmallScreen;
}

export function formatTimeFromSeconds(seconds: number, hour = false) {
  // 确保startTime是数字
  if (typeof seconds !== "number") {
    throw new Error("seconds must be a valid number.");
  }
  const h = Math.floor(seconds / 3600);
  const m = Math.floor((seconds % 3600) / 60);
  const s = seconds % 60;
  const hStr = String(h).padStart(2, "0");
  const mStr = String(m).padStart(2, "0");
  const sStr = String(s).padStart(2, "0");
  return Number(hStr) > 0 || hour
    ? `${hStr}:${mStr}:${sStr}`
    : `${mStr}:${sStr}`;
}
